//
// Created by 王乐 on 2022/2/4.
//

#ifndef LESTE_LETRANSFORM_H
#define LESTE_LETRANSFORM_H

#include "glm/glm.hpp"

class LeTransform
{
public:
    LeTransform();
    virtual ~LeTransform();

public:
    void setPosition(float posx, float posy, float posz);
    void setRotation(float rotx, float roty, float rotz);
    void setScale(float scalx, float scaly, float scalz);

public:
//    void translate(float x, float y, float z, bool relative2Self = true);
//    void rotate(float x, float y, float z, bool relative2Self = true);
//    void rotateAround(glm::vec3 point, glm::vec3 axis, float angle);

    glm::mat4 getModelMatrix();

public:
    glm::vec3 m_Position;
    // Only count for 2D situation, for now.
    // rotation around z axis. Rotation order: Z, X, Y
    glm::vec3 m_Rotation;
    glm::vec3 m_Scale;
};


#endif //LESTE_LETRANSFORM_H
